import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)


//Vuex配置log
const store = new Vuex.Store({
  state: {
    // domain:'http://test.example.com', //保存后台请求的地址，修改时方便（比方说从测试服改成正式服域名）
    userInfo: { //保存用户信息
      name: null,
      age: null,
      id: null,
      portrait: null,
      autograph:null
    },
    names:{//城市及id
      cityName:null,
      id:null
    },
    movieDetail:{//电影详情
      nm:null,//电影名
      enm:null,//电影英文名
      img:null,//电影大图
      cat:null,//电影类型
      dra:null,//剧情描述
      sc:null,//电影评分
      src:null,//国家
      episodeDur:null,//电影时长
      episodeDur:null,//语言
      pubDesc:null,//上映时间
      photos:[],//电影详情图
      wish:null,//多少人想看
    },
    musicDetail:{//音乐id
      songId:null,//歌单id
      id:null,//音乐id
      title:null,//歌曲名字
      author:null,//作者
      img:null,//背景图
      url:null,//歌曲地址
      lrc:null,//歌词
      list:[],//歌曲列表
    },
    songSheet:{//歌单详情 
      coverImgUrl:null,//歌单背景图
      id:null,//歌单id
      name:null,//歌单名
      nickname:null,//用户名
      userId:null,//用户id
      count:0,//计数判断评论
    },
    searchList:[],//搜索历史
    isAplayer:null,//控制播放器是否显示
  },
  mutations: {
    //更新用户信息
    updateUserInfo(state, newUserInfo) {
      state.userInfo = newUserInfo;
      //把存储到vuex里面的数据放到sessionStorage，避免刷新页面数据丢失
      sessionStorage.setItem('userInfos',JSON.stringify(newUserInfo));
      //JSON.parse(sessionStorage.getItem("userInfos")) //取数据
    },
    add(state, val){//城市及id
      state.names = val;
      sessionStorage.setItem('names',JSON.stringify(val));
    },
    getMovieDeatil(state,val){//电影详情
      state.movieDetail = val ;
      sessionStorage.setItem('movieDetail',JSON.stringify(val));
    },
    getMusicDetail(state,val){//音乐详情
      state.musicDetail = val;
      sessionStorage.setItem('musicDetail',JSON.stringify(val));

    },
    getSongSheet(state,val){
      state.songSheet = val;
      sessionStorage.setItem('songSheetVuex',JSON.stringify(val));
    },
    getSearchList(state,val){
      // console.log(val.concat(JSON.parse(sessionStorage.getItem("searchList"))),val)
      // 搜索去重
      if(val){
        state.searchList = [...new Set(val.concat(JSON.parse(sessionStorage.getItem("searchList"))))] ;
      }else{
        state.searchList = val ;
      }
      sessionStorage.setItem('searchList',JSON.stringify(val));
    },
    getAplayer(state,val){
      state.isAplayer = val;
      sessionStorage.setItem('isAplayer',JSON.stringify(val));
    }

  }

})
//在vue根文件中注册store，这样所有的组件都可以使用store中的数据了
export default store

